package zw_501_600.zw_520_检测大写字母;

class Solution {

    public static void main(String[] args) {
        String word = "USA";
        boolean b = detectCapitalUse(word);
        System.out.println(b);
    }

    public static boolean detectCapitalUse(String word) {
        // 若第 1 个字母为小写，则需额外判断第 2 个字母是否为小写
        if (word.length() >= 2 && Character.isLowerCase(word.charAt(0)) && Character.isUpperCase(word.charAt(1))) {
            return false;
        }

        // 无论第 1 个字母是否大写，其他字母必须与第 2 个字母的大小写相同
        for (int i = 2; i < word.length(); ++i) {
            if (Character.isLowerCase(word.charAt(i)) ^ Character.isLowerCase(word.charAt(1))) {
                return false;
            }
        }
        return true;
    }

//    public static boolean detectCapitalUse(String word) {
//        return word.equals(word.toUpperCase()) || word.substring(1).equals(word.substring(1).toLowerCase());
//    }


//    public static boolean detectCapitalUse(String word) {
//        int len = word.length();
//        if (word.charAt(0) >= 'a' && word.charAt(0) <= 'z') {
//            for (int i = 1; i < word.length(); i++) {
//                if (word.charAt(i) >= 'A' && word.charAt(i) <= 'Z') return false;
//            }
//        } else if (word.charAt(0) >= 'A' && word.charAt(0) <= 'Z') {
//            if (word.charAt(len - 1) >= 'A' && word.charAt(len - 1) <= 'Z') {
//                for (int i = 1; i < word.length() - 1; i++) {
//                    if (word.charAt(i) >= 'a' && word.charAt(i) <= 'z') return false;
//                }
//            } else {
//                for (int i = 1; i < word.length() - 1; i++) {
//                    if (word.charAt(i) >= 'A' && word.charAt(i) <= 'Z') return false;
//                }
//            }
//        }
//        return true;
//    }
}
